/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package autopecas.Fachada;

import autopecas.ClasseBasica.Cliente;
import autopecas.ClasseBasica.Veiculo;
import autopecas.Exception.ClienteException;
import autopecas.Exception.VeiculoException;
import autopecas.Negocios.NegocioCliente;
import autopecas.Negocios.NegocioVeiculo;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author NeGo
 */
public class Fachada {

    NegocioCliente negociosCli;
    NegocioVeiculo negocioVeiculo;

    public Fachada() {

        negociosCli = new NegocioCliente();
        negocioVeiculo = new NegocioVeiculo();

    }

    /**
     * Recebe informações do Cliente pra persistência
     *
     * @param cliente Informações do cliente pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */
    
    
    public void RegraCadastrar(Cliente c) throws SQLException, ClienteException {
        negociosCli.RegraCadrasto(c);
    }

    /**
     * Recebe informações do Cliente pra persistência
     *
     * @param cliente Informações do cliente pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */

    public void RegraRemover(Cliente c) throws SQLException, ClienteException {
        negociosCli.RegraRemover(c);
    }

    /**
     * Recebe informações do Cliente pra persistência
     *
     * @param cliente Informações do cliente pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */
    public void RegraAtualizar(Cliente c) throws SQLException, ClienteException {
        negociosCli.RegraAtualizar(c);
    }

    /**
     * Recebe informações do Cliente pra persistência
     *
     * @param cliente Informações do cliente pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */

    public ArrayList<Cliente> RegraListar() throws SQLException, ClienteException {
        return negociosCli.RegraListar();
    }

///////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * Recebe informações do Viculo pra persistência
     *
     * @param Veiculo Informações do Veiculo pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */
    public void RegraCadastrar(Veiculo v) throws SQLException, VeiculoException {
        negocioVeiculo.RegraCadrasto(v);
    }

    /**
     * Recebe informações do Viculo pra persistência
     *
     * @param Veiculo Informações do Veiculo pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */
    public void RegraAtualizar(Veiculo v) throws SQLException, VeiculoException {
        negocioVeiculo.RegraAtualizar(v);
    }

    /**
     * Recebe informações do Viculo pra persistência
     *
     * @param Veiculo Informações do Veiculo pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */

    public void RegraRemover(Veiculo v) throws SQLException, VeiculoException {
        negocioVeiculo.RegraRemover(v);
    }

    /**
     * Recebe informações do Viculo pra persistência
     *
     * @param Veiculo Informações do Veiculo pra persistência
     * @throws java.sql.SQLException - erros retornados do banco
     */
    public ArrayList<Veiculo> RegraListar(Veiculo v) throws SQLException, VeiculoException {
        return negocioVeiculo.regraListar();
    }
    
    public ArrayList<Veiculo> regraListar(long cpf) throws SQLException, VeiculoException {
        return negocioVeiculo.regraListar(cpf);
    }
}
